<?php
/**
 * 用户控制器
 * 15-04-15  
 * 
 */

	class UserController extends Controller
	{
		/**
		 * 验证码生成
		 * 以下代码的意思：在当前控制器里边，以方法的形试访问其它类
		 * 我们访问 ./index.php?r=user/captcha就会访问到以方法的CCaptchaAction
		 * 		会走CCaptchaAction类里边的run()方法
		 * 
		 * 谁会过来使用 user/captcha这个路由
		 * 答：是视图表单接过来调用($this->widget('CCaptcha'))
		 */
		public function actions(){
			return array(
					'captcha' => array(
						'class' => 'system.web.widgets.captcha.CCaptchaAction',
						'width' => 75,
						'height' => 30,
					),
					
					//我们在外边随便定义一个类，都可以通过这种方式访问
					//user/co 就会访问Computer.php里边的run()方法
					'co'=>array(
						'class'=>'application.controllers.Computer',		
					)
			);
		}
		
		
		
		public function actionLogin(){
			//echo '我要登录后台';
			
			//var_dump(Yii::app()->db); 测试数据库是否连接成功
			
			//创建登录模型对象
			$user_login = new LoginForm;
			
			if(isset($_POST['LoginForm'])){
				//收集表单信息
				$user_login->attributes = $_POST['LoginForm'];
				
				//校验数据
				//该地方不只校验用户名和密码是否填写，还要校验真实性
				//用户信息进行session存储，调用模型里边的一个方法login(),就可以进行session存储
				if($user_login->validate() && $user_login->login())
					$this->redirect('./index.php');
			}
			
			$this->render('login', array('user_login' => $user_login));
		}
		
		/**
		 * 实现用户注册功
		 * 1.展现注册表单
		 * 2.收集数据、校验数据，存储数据
		 */
		
		public function actionRegister(){
			//实例化数据对象user
			$user_model = new user();
			
			//性别信息
			$sex[1] = "男";
			$sex[2] = "女";
			$sex[3] = "保密";
			
			//定义学历
			$xueli[1] = "-请选择-";
			$xueli[2] = "小学";
			$xueli[3] = "初中";
			$xueli[4] = "高中";
			$xueli[5] = "大学";
			
			//定义爱好信息
			$hobby[1] = "篮球";
			$hobby[2] = "足球";
			$hobby[3] = "排球";
			$hobby[4] = "棒球";
			
			
			//print_r($_POST['user']);
			
			//如果有用户注册表单
			if(isset($_POST['user'])){
//给模型收集表单
// 				foreach ($_POST['user'] as $_k => $_v){
// 					$user_model -> $_k = $_v;
// 				} 
				//错语等级
				$_POST['user']['user_hobby'] = implode(',',$_POST['user']['user_hobby']);
				//密码要md5加密
				$_POST['user']['pass_word'] = md5($_POST['user']['pass_word']); 
				$_POST['user']['pass_word2'] = md5($_POST['user']['pass_word2']); 
				//此行代码对上面代码优化  运行时会有部分字段不会被插入
				$user_model -> attributes = $_POST['user'];
				
				if($user_model -> save()){
					$this->redirect('./index.php');
				}
			}
			
			$this->render('register', array('user_model' => $user_model,'sex' => $sex, 'xueli'=>$xueli, 'hobby'=>$hobby));
		}
		
		/**
		 * 用户退出系统
		 */
		function actionLogout(){
			//删除session信息
			Yii::app()->session->clear();//删除内在里边session变量信息
			Yii::app()->session->destroy(); //删除服务器的session文件
			$this->redirect('./index.php');
		}
		
		/**
		 * 系统类测试
		 */
		function actionAp(){
		echo Yii::app()->defaultController,"<br />";
        echo Yii::app()->layout,"<br />";
        echo Yii::app()->name,"<br />";
        echo Yii::app()->charset,"<br />";
        echo Yii::app()->getLayoutPath(),"<br />";
        echo Yii::app()->request->getUrl(),"<br />";
        echo Yii::app()->request->getHostInfo(),"<br />";
		}
		
	}


?>